<?php
    function get_cip()
    {
        //php获取ip的算法 
        if (isset($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])) {
            $ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]; 
        } elseif (isset($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])) {
            $ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"]; 
        } elseif (isset($HTTP_SERVER_VARS["REMOTE_ADDR"])) {
            $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
        } elseif (getenv("HTTP_X_FORWARDED_FOR")) {
            $ip = getenv("HTTP_X_FORWARDED_FOR");
        } elseif (getenv("HTTP_CLIENT_IP")) {
            $ip = getenv("HTTP_CLIENT_IP");
        } elseif (getenv("REMOTE_ADDR")) {
            $ip = getenv("REMOTE_ADDR");
        } else {
            $ip = "Unknown"; 
        }
        return $ip;
    }
    
    /**
     * http://api.map.baidu.com/location/ip?ak=4E7D433Eb897fba7c7a92532c288b518&ip=".get_cip()."&coor=bd09l"   调用百度ip定位接口
     * @return mixed|string
     */
    function get_current_city()
    {
        $ip = file_get_contents("http://api.map.baidu.com/location/ip?ak=4E7D433Eb897fba7c7a92532c288b518&ip=".get_cip()."&coor=bd09l");
        $shuju = json_decode($ip);
        if (is_object($shuju) && $shuju->status==0){ // status=0 表示成功         
            $city_name = $shuju->content->address_detail->city;
            return str_replace('市', '', $city_name);//获取城市名
        }
        return '杭州';
    }
    
    /**
     * 获取当前城市
     * @param string $location //经度，纬度，例如：39.983424,116.322987
     * @param string $coordtype //bd09ll 百度经纬度坐标;wgs84ll（ GPS经纬度）
     * @param string $output //输出类型：xml,json
     * @param number $pois //是否显示指定位置周边的poi，0为不显示，1为显示。当值为1时，显示周边100米内的poi。
     * @return mixed|string
     */
    function locationCurrentCity($location = '30.301729,120.162152', $coordtype = 'wgs84ll', $output = 'json', $pois = 0)
    {
        $data = file_get_contents('http://api.map.baidu.com/geocoder/v2/?ak=4E7D433Eb897fba7c7a92532c288b518&location='.$location.'coordtype='.$coordtype.'&output='.$output.'&pois='.$pois);
        $shuju = json_decode($data);
        if (is_object($shuju) && $shuju->status == 0) { // status=0 表示成功
            $city_name = str_replace('市', '', $shuju->result->addressComponent->city);//城市
            $province_name  = str_replace('省', '', $shuju->result->addressComponent->province);//省份
            return ['province' => $province_name, 'city' => $city_name];
        }
        return ['province'=>'浙江', 'city'=>'杭州'];
    }
